package com.aiwhose.aiwhosecore.bean.file;

import com.aiwhose.aiwhosecore.bean.BaseEntity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;

import com.mybatisflex.core.keygen.KeyGenerators;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.EqualsAndHashCode;
import java.io.Serial;

/**
 * 文件 实体类。
 *
 * @author 田国刚33
 * @since 1.0.1
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Schema(description = "文件")
@Table(value = "file")
public class File extends BaseEntity implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;


    @Schema(description = "")
    @Id(keyType = KeyType.Generator, value = KeyGenerators.snowFlakeId)
    private String id;

    /**
     * 用户
     */
    @Schema(description = "用户")
    private String user;

    /**
     * 文件名
     */
    @Schema(description = "文件名")
    private String filename;

    /**
     * 文件存储设备 aliyunpan 阿里云盘； qiniuyun 七牛云；home_ftp 家庭ftp
     */
    @Schema(description = "文件存储设备 aliyunpan 阿里云盘； qiniuyun 七牛云；home_ftp 家庭ftp")
    private String locationType;

    /**
     * 文件位置路径
     */
    @Schema(description = "文件位置路径")
    private String locationPath;

    /**
     * 文件大小（字节）
     */
    @Schema(description = "文件大小（字节）")
    private String size;



    /**
     * 访问权限
     */
    @Schema(description = "访问权限")
    private String accessAuthority;


    /**
     * 访问地址
     */
    @Schema(description = "访问地址")
    private String url;

    /**
     * 文件类型
     */
    @Schema(description = "文件类型")
    private String fileType;


    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;

    /**
     * 预留字段
     */
    @Schema(description = "预留字段")
    private String str1;

    /**
     * 预留字段
     */
    @Schema(description = "预留字段")
    private String str2;

}
